package com.gxuwz.com_property.utils;

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Component;

@Component
public class BCryptUtil {

    // 创建一个静态的BCryptPasswordEncoder实例（线程安全）
    private static final BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();

    /**
     * 对原始密码进行加密
     *
     * @param rawPassword 明文密码
     * @return 加密后的密码字符串
     */
    public static String encrypt(String rawPassword) {
        return passwordEncoder.encode(rawPassword);
    }

    /**
     * 检查原始密码与加密后的密码是否匹配
     *
     * @param rawPassword     用户输入的明文密码
     * @param encodedPassword 数据库中存储的加密密码
     * @return 如果匹配，则返回true，否则返回false
     */
    public static boolean checkPassword(String rawPassword, String encodedPassword) {
        return passwordEncoder.matches(rawPassword, encodedPassword);
    }
}
